The present invention relates to a system and method for facilitating access to and use of geographic data used with a navigation application program that provides navigating features and functions to an end-user, and more particularly, the present invention relates to a geographic database that includes geographic data of different types, each type of which is tailored to support one or more of the navigation functions and which operates with another of the different types, thereby facilitating certain navigation functions and enhancing performance.
Computer-based navigation application programs are available that provide endusers (such as drivers of vehicles in which the navigation systems are installed) with various navigating functions and features. For example, some navigation application programs are able to determine an optimum route to travel by roads between locations. Using input from an end-user, and optionally from equipment that can determine one""s physical location (such as a GPS system), a navigation application program can examine various routes between two locations to determine an optimum route to travel from a starting location to a destination location in a geographic region. The navigation application program may then provide the end-user with information about the optimum route in the form of instructions that identify the maneuvers required to be taken by the end-user to travel from the starting location to the destination location. If the navigation system is located in an automobile, the instructions may take the form of audio instructions that are provided along the way as the end-user is traveling the route. Some navigation application programs are able to show detailed maps on computer displays outlining routes to destinations, the types of maneuvers to be taken at various locations along the routes, locations of certain types of features, and so on.
In order to provide these and other navigating functions, the navigation application program uses one or more detailed databases that include data which represent physical features in a geographic region. The detailed database may include data representing the roads and intersections in a geographic region and also may include information about the roads and intersections in a geographic region, such as turn restrictions at intersections, speed limits along the roads, street names of the various roads, address ranges along the various roads, and so on.
One difficulty in providing geographic data for use by a navigation application program relates to the efficient utilization of the available computer resources of the navigation system on which the navigation application program is run. Computer-based navigation application programs are provided on various platforms including some with relatively limited computer hardware resources. For example, navigation systems may be located in vehicles or may be hand-held. These types of navigation systems typically have relatively limited computer resources, such as limited memory and relatively slow I/O In order to provide a high a level of functionality in such systems, it is required that the available computer resources be used efficiently.
Given the relatively large size of the geographic database necessary to provide a desired level of navigating functionality to the end-user, it is accepted that all the data records for an entire geographic region cannot be loaded into the memory of the navigation system at the same time. This is especially true for navigation system platforms with limited resources, such as systems installed in vehicles or hand-held systems. Due to the limited memory resources of these navigation systems, it is necessary to load geographic data as needed from a storage medium, such as a CD-ROM disk, into the memory of the navigation system for use by the navigation application program. Unfortunately, as mentioned above, in these types of systems, I/O access from a storage medium may also be relatively slow. Thus, the relatively limited memory resources combined with the relatively slow I/O can limit the performance of some types of navigation systems, resulting in slow response. Aside from being undesirable, slow response in a navigation system may render the system useless for its intended purpose in certain circumstances. For example, if the navigation system is installed in a vehicle, the driver may require information from the navigation system about a desired route in a matter of seconds in order to utilize the information while driving. If the navigation system requires more than several seconds to calculate a route, the driver may have moved beyond the point at which the routing information provided by the navigation system is relevant. Therefore, it is important that navigation systems operate efficiently in order to provide navigating information relatively quickly.
Navigation application programs may also be run on computer platforms that have in general greater memory resources and faster I/O, such as personal computers or networks. Although these systems may have more and faster resources, the considerations related to the efficient use of geographic data still apply, but on a larger scale. With these types of systems, even greater functionality can be provided if the limitations imposed by memory size and I/O are minimized.
Techniques have been devised or implemented to improve navigation system performance by organizing, structuring, or arranging the geographic database or the data in the database in particular ways. Because a navigation system uses geographic data in certain known and expected ways to perform known functions, the geographic data can be organized, structured, or arranged in a manner that facilitates their use in these known ways by the navigation system.
One technique that can be implemented in a geographic database to enhance operation of the navigation system is to provide separate collections or subsets of the geographic data for use by each of the separate functions in the navigation application program. For instance, the route calculation function normally uses only a portion of all the information in the geographic database that is associated with a segment of a road. When the route calculation function is being run, it may require information such as the speed along a road segment, turn restrictions from one road segment to another, and so on. However, the route calculation function does not necessarily require the name of the road to calculate a route. Similarly, when using the map display function, some of the information associated with a road segment, such as the speed limits or turn restrictions, is not required. Instead, when the map display function is run, it uses only a portion of the information associated with the road segment, such as the shapes and locations of roads, and possibly the names of the roads. Even further, when the route guidance function is being run, some of the information associated with a segment of a road, such as the speed and turn restrictions, is not required. Instead, when the route guidance function is being run, it uses information that includes the name of the road represented by the road segment record, the address range along the road segment, any signs along the road segment, and so on. Although there may be some overlap as to the types of information used by the various navigation functions, some of the data used by any one of these navigation functions is not used by another of the functions. If all the information relating to each road segment were associated with a single data entry in a single database, each data entity record would be relatively large. Thus, whenever any one of the navigation functions accessed an entity record, it would have to read into memory a significant amount of information much of which would not be needed by the navigation function. Moreover, when reading the data entity from disk, relatively few data entities could be read at a time since each data entity would be relatively large.
In order to provide the information in the geographic database in a format more efficient for use by each of the navigation functions, separate subsets of the entire geographic database for a given geographic region are provided for each of the different types of navigation functions to be provided in the navigation application program. Each of these separate subsets is tailored specifically for use by one of the functions. Each subset of data includes only the data required to be used by a particular navigation function. There is some overlap of data between each of these subsets, with the result that some parts of the information may be included in more than one subset. For example, both the road segment data entity in the routing data subset as well as the road segment data entity in the cartographic data subset may include attributes identifying the nodes located at the ends of the segments. Although this duplication may result in a larger overall data storage requirement, each of the navigation functions benefits from the resultant efficiency of handling smaller amounts of data.
Providing for separate subsets of geographic data for each of the navigation functions also takes into account that usage of each of these navigation functions relates to the others of the navigating functions in expected ways. For example, an end-user may first want to view a present position, then enter a destination, then receive instructions how to start toward the destination, then observe a map showing the initial portion of the route, then receive further instructions, then have a map displayed of the next portion of the route, and so on. Because of this type of expected usage, dividing the data into subsets provides for efficient use of the data when using each separate function.
Although the division of the geographic data into subsets provides for efficient use of the data by each of the different navigation functions, it becomes necessary to provide that the different navigating functions that use these different subsets of the database work together. For example, after an end-user obtains a calculated route, it may be desired to display a map on a computer display with the calculated route highlighted. In order to accomplish this, the routing subset of geographic data is accessed first to obtain the routing road segment data entities for the optimum route, and then the cartographic subset of the geographic database is accessed to obtain the cartographic road segment data entities corresponding to the routing data entities. To permit these data subsets to work together, index files cross reference files, search trees, or other techniques may be used. Although these techniques enable using these different types of data together, there may be delays associated with switching between these types. Accordingly, there continues to be room for improvement in providing a geographic database for use with a navigation application.
To address the above concerns, according to one aspect of the present invention, there is provided a geographic database for use with a navigation application program that provides navigation features to an end-user. The geographic database includes a plurality of data records of a first type and a plurality of data records of a second type. The plurality of records of the first type are organized into a plurality of parcels, each of which includes a plurality of data records of the first type. The plurality of records of the second type are organized into a plurality of parcels, each of which includes a plurality of data records of the second type. The parcels of data records of the first type are interleaved with the parcels of data records of the second type. This interleaving enables navigation functions that use these different types to access these different types more quickly and efficiently, thereby enhancing navigation system performance.
Also disclosed is a method for forming a geographic database that includes a plurality of data records that represent geographic features and which can be used in a navigation system. The method includes the step of interleaving parcels containing pluralities of data records of a first type with parcels containing pluralities of data records of a second type.
The data types that can be interleaved can be any types, such as routing data, cartographic data, maneuvering data, point of interest data, and so on. The kind of interleaving can be selected to facilitate the performance of certain navigation functions. The kinds of interleaving include single alternating order, spatial ordering, and custom ordering, as well as other kinds.